home *** CD-ROM | disk | FTP | other *** search
-
- function units_base_setup()
- building_setup(ENET_GEOMETRY_BASE_SHADOW)
- end
-
- function units_base_resetup()
- building_setup(ENET_GEOMETRY_BASE_SHADOW)
- end
-
- function units_base_select()
- units_select(12,1)
- end
-
- function units_base_unselect()
- units_unselect()
- end
-
- function units_base_selectenemy()
- uniGetExecutor():addSimpleEffect(ENET_EFFECT_SELECTEDGEOMETRY_ENEMY)
- end
-
- function units_base_damaged()
- uniGetExecutor():applyDamage(uniGetLife())
- end
-
- function units_base_highlight()
- uniGetExecutor():addEffectWithRadius(ENET_EFFECT_GEOMETRY_HIGHLIGHT,15)
- end
-
- function units_base_explode()
- -- units_explode(500.0,ENET_EFFECT_PS_BIGUNITEXPLODE,true)
- units_explode_base()
- end
-
- function units_base_move()
- end
-
- function units_base_fire()
- local unit = uniGetExecutor()
- uniSetLife(uniGetLife() / 6.0)
- local gt = unit:getBone(ENBT_GUNTOWER)
- local sound = unit:play3DSound("lighttank_guntower_rotate.wav",1)
- waitDeath(gt:addRotationEffect(ENET_EFFECT_ROTATE_GUNTOWERTOTARGET,MATH_PI,uniGetTarget()))
- local gun = gt:getBone(ENBT_GUN)
- waitDeath(gun:addRotationEffect(ENET_EFFECT_ROTATE_GUNTOTARGET,MATH_PI / 3.0,uniGetTarget()))
- sound:destroy()
- unit:addAnimationToQueue(ENAT_PREPAREFORFIRE1,1)
- unit:addAnimationToQueue(ENAT_FIREPOSITION1,MATH_INFINITY)
- unit:addAnimationToQueue(ENAT_AFTERFIRE1,1)
- sound = unit:play3DSound("Cargo_open2.wav",1)
- while(unit:getCurrentAnimation() == ENAT_PREPAREFORFIRE1) do
- pause()
- end
- sound:destroy()
- local firespots = {}
- firespots[0] = gt:getBone(ENBT_FIRE2,0)
- firespots[1] = gt:getBone(ENBT_FIRE2,1)
- for i = 0,2 do
- unit:play3DSound("smallrobot_fire.wav",0)
- local shot1 = firespots[0]:addSimpleEffect(ENET_EFFECT_BASESHOT_FLY):executeCommand(ENC_FIRE1)
- local shot2 = firespots[0]:addBulletEffect(ENET_EFFECT_PS_BASESHOT)
- --gt:gunRecoil(0,0.15,6)
- pause(0.1)
- unit:play3DSound("smallrobot_fire.wav",0)
- local shot1_2 = firespots[1]:addSimpleEffect(ENET_EFFECT_BASESHOT_FLY):executeCommand(ENC_FIRE1)
- local shot2_2 = firespots[1]:addBulletEffect(ENET_EFFECT_PS_BASESHOT)
- --gt:gunRecoil(1,0.15,6)
- pause(0.1)
- shot2:suspendedDestroy(1.5)
- shot2_2:suspendedDestroy(1.5)
- end
- pause(1.0)
- unit:setCurrentAnimationRepeatCount(0)
- end
-
- registerCommand(ENSCRIPTSET_BASE,ENC_MOVE,"units_base_move")
- registerCommand(ENSCRIPTSET_BASE,ENC_FIRE1,"units_base_fire")
- registerCommand(ENSCRIPTSET_BASE,ENC_FIRE2,"units_base_fire")
- registerCommand(ENSCRIPTSET_BASE,ENC_SELECT,"units_base_select")
- registerCommand(ENSCRIPTSET_BASE,ENC_SELECTENEMY,"units_base_selectenemy")
- registerCommand(ENSCRIPTSET_BASE,ENC_UNSELECT,"units_base_unselect")
- registerCommand(ENSCRIPTSET_BASE,ENC_SETUP,"units_base_setup")
- registerCommand(ENSCRIPTSET_BASE,ENC_RESETUP,"units_base_resetup")
- registerCommand(ENSCRIPTSET_BASE,ENC_DAMAGED,"units_base_damaged")
- registerCommand(ENSCRIPTSET_BASE,ENC_EXPLODE,"units_base_explode")
- registerCommand(ENSCRIPTSET_BASE,ENC_HIGHLIGHT,"units_base_highlight")
- registerCommand(ENSCRIPTSET_BASE,ENC_INSIDE,"units_inside")
-
- -- make description of unit
- desc = getEffectDescriptionP(ENET_UNIT_BASE)
- desc.ClassID = ENCLASS_MESHINSTANCE
- desc.EffectClassType = ENECT_GEOMETRY
- desc.FileName = "base.rmd"
- desc.ScriptSet = ENSCRIPTSET_BASE
- desc.MoveType = ENMOVE_GROUND
- desc.RenderType = ENRENDERTYPE_GEOMETRY
- desc.Material = ENMAT_CAPITAL
- desc.MaterialColors = units_materialcolors_human
-
- -- shadow
- desc = getEffectDescriptionP(ENET_GEOMETRY_BASE_SHADOW)
- desc.ClassID = ENCLASS_MESHINSTANCE
- desc.EffectClassType = ENECT_GEOMETRY
- desc.FileName = "base_shadow.rmd"
- desc.RenderType = ENRENDERTYPE_SHADOW
- desc.Material = ENMAT_SHADOW
- desc.MaterialColors = units_materialcolors_shadow
-
- -- register new unit to logic
- unitDesc = logic_getUnitDescP(42)
- unitDesc.group = 0
- unitDesc.order = 0
- unitDesc.unit_res_id = ENET_UNIT_BASE
- unitDesc.unit_icon_id = "Smallrobot_h_small_normal.dds"
- unitDesc.active_id = "Smallrobot_h_small_active.dds"
- unitDesc.pressed_id = "Smallrobot_h_small_pressed.dds"
- unitDesc.big_icon_id = "Military_base_ico.dds"
- unitDesc.small_icon_id = "80A0.dds"
- unitDesc.HP = 13
- unitDesc.MP = 0
- unitDesc.WR = 4
- unitDesc.min_WR = 1
- unitDesc.WD = 3
- unitDesc.WR2 = 0
- unitDesc.min_WR2 = 0
- unitDesc.WD2 = 0
- unitDesc.ability = 0
- unitDesc.transport = 2
- unitDesc.value = 7
- unitDesc.race = 2
- unitDesc.fire_pause = 0.2
- unitDesc.move_pause = 0.5
- unitDesc.unit_info_scale = 0.08
- unitDesc.scn_name = "BASE"
-
- ------------------------------------------------------------------------------------------------------
- ------------------------ effects related to unit------------------------------------------------------
- ------------------------------------------------------------------------------------------------------
-
-